package com.loong.system.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDate;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

/**
* @Author:      ten.x
* @TableName    sys_user
* @Date:        2024-04-25 10:50:33
* @Version:     V1.0
*/
@Data
@Accessors(chain = true)
@TableName(value ="sys_user")
@EqualsAndHashCode(callSuper = false)
public class UserUpdateDTO implements Serializable {

@TableField(exist = false)
private static final long serialVersionUID = 1L;

    /**
    * 主键：id
    */
    @TableId(value = "id")
    @Schema(description ="id")
    @Length(max= 64,message="编码长度不能超过64")
    private String id;
    /**
    * 用户名
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "username")
    @Schema(description ="用户名")
    @Length(max= 255,message="编码长度不能超过255")
    private String username;
    /**
    * 手机号
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "phone")
    @Schema(description ="手机号")
    @Length(max= 255,message="编码长度不能超过255")
    private String phone;
    /**
    * 
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "password")
    @Schema(description ="")
    @Length(max= 255,message="编码长度不能超过255")
    private String password;
    /**
    * 昵称
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "nickname")
    @Schema(description ="昵称")
    @Length(max= 255,message="编码长度不能超过255")
    private String nickname;
    /**
    * 头像id
    */
    @Size(max= 64,message="编码长度不能超过64")
    @TableField(value = "logo_id")
    @Schema(description ="头像id")
    @Length(max= 64,message="编码长度不能超过64")
    private String logoId;
    /**
    * 性别（字典sex_type 1男  2女 3沃尔玛购物袋）
    */
    @Size(max= 64,message="编码长度不能超过64")
    @TableField(value = "sex")
    @Schema(description ="性别（字典sex_type 1男  2女 3沃尔玛购物袋）")
    @Length(max= 64,message="编码长度不能超过64")
    private String sex;
    /**
    * 真实姓名
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "real_name")
    @Schema(description ="真实姓名")
    @Length(max= 255,message="编码长度不能超过255")
    private String realName;
    /**
    * 电子邮件
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "email")
    @Schema(description ="电子邮件")
    @Length(max= 255,message="编码长度不能超过255")
    private String email;
    /**
    * 身份证号
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "id_card")
    @Schema(description ="身份证号")
    @Length(max= 255,message="编码长度不能超过255")
    private String idCard;
    /**
    * 生日
    */
    @TableField(value = "birthday")
    @Schema(description ="生日")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;
    /**
    * 角色标识
    */
    @TableField(value = "role_sign")
    @Schema(description ="角色标识")
    private String roleSign;
    /**
    * 逻辑删，默认0，1为已删除
    */
    @TableField(value = "deleted")
    @Schema(description ="逻辑删，默认0，1为已删除")
    private Integer deleted;
    /**
    * 多租户
    */
    @Size(max= 64,message="编码长度不能超过64")
    @TableField(value = "tenant_id")
    @Schema(description ="多租户")
    @Length(max= 64,message="编码长度不能超过64")
    private String tenantId;
    /**
    * 微信openid
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "wx_open_id")
    @Schema(description ="微信openid")
    @Length(max= 255,message="编码长度不能超过255")
    private String wxOpenId;
    /**
    * 微信手机号
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "wx_phone")
    @Schema(description ="微信手机号")
    @Length(max= 255,message="编码长度不能超过255")
    private String wxPhone;
    /**
    * 微信昵称
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "wx_nickname")
    @Schema(description ="微信昵称")
    @Length(max= 255,message="编码长度不能超过255")
    private String wxNickname;
    /**
    * 微信头像
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "wx_avatar")
    @Schema(description ="微信头像")
    @Length(max= 255,message="编码长度不能超过255")
    private String wxAvatar;
    /**
    * 地址
    */
    @Size(max= 255,message="编码长度不能超过255")
    @TableField(value = "address")
    @Schema(description ="地址")
    @Length(max= 255,message="编码长度不能超过255")
    private String address;
    /**
    * 个性签名
    */
    @Size(max= 256,message="编码长度不能超过256")
    @TableField(value = "personal_signature")
    @Schema(description ="个性签名")
    @Length(max= 256,message="编码长度不能超过256")
    private String personalSignature;
}